package core;

import java.util.ArrayList;

/**
 * Representation d'une section pour le noyau de l'application
 * @author Ganne, Pmartin
 */
public class Section implements Cloneable {
	/**
	 * Nom de la Section
	 */
	private String name;
	/**
	 * Liste ordonnee des mesures de la Section
	 */
	private ArrayList<Mesure> mesures = new ArrayList<Mesure>();
	
	/**
	 * Tempo de la Section
	 */
	private double tempo;
	
	public Section (String name, int startTemps, double tempo, double timeStart){
		this.name = name;
		this.tempo = tempo;
	}
	
	/**
	 * Getter du tempo
	 * @return Le tempo de la Section
	 */
	public double getTempo() {
		return tempo;
	}
	
	/**
	 * Methode permettant d'ajouter une mesure a la Section
	 * L'ordre d'ajout des mesure a son importance
	 * @param section: La Section a ajouter
	 */
	public void addMesure(Mesure mesure) {
		mesures.add(mesure);	
	}
	
	/**
	 * {@inheritDoc}
	 */
	public Section clone(){
		try {
			return (Section)super.clone();
		} catch (CloneNotSupportedException e) {
			e.printStackTrace();
			return null;
		}
	}

	/**
	 * Getter de la liste des mesures de la Section
	 * @return La liste des mesures de la Section
	 */
	public ArrayList<Mesure> getMesure() {
		return this.mesures;
	}

	/**
	 * Getter du nom de la Section
	 * @return Le nom de la Section
	 */
	public String getName() {
		return name;
	}
}
